home *** CD-ROM | disk | FTP | other *** search
/ Die Speccy' 97 / Die Speccy' 97.iso / amiga_system / the_aminet / comm / bbs / bbbbs85.lha / rexx / bbsALPHA.rexx < prev    next >
OS/2 REXX Batch file  |  1994-09-20  |  5KB  |  175 lines

  1. /* $VER: bbsALPHA.rexx 8.1 (20.9.94)
  2. copyright ⌐ 1991-94 Richard Lee Stockton
  3.         FREELY DISTRIBUTABLE
  4. */
  5.  
  6. arcfile=''
  7. arcfile='Text/FileList' /* delete this line for no archive of filelist */
  8. libfile=''
  9. libfile='Text/FilesByLib' /* delete this line for no filelist by lib */
  10.  
  11. arcfile2='FileList.txt'
  12. libfile2='FilesByLib.txt'
  13. IF arcfile='' & libfile='' THEN SIGNAL GETOUT
  14.  
  15. bbspath=GETCLIP('BBS_path')
  16. libpath=GETCLIP('BBS_libpath')
  17. libpath2=libpath
  18. bbsname=GETCLIP('BBS_bbsname')
  19.  
  20. PARSE ARG totfiles extension arccom
  21.  
  22. IF extension='' THEN
  23.   DO
  24.     extension='.lzh'
  25.     arccom='lharc >ram:junk -m m'
  26.   END
  27. ELSE extension='.'extension
  28.  
  29. IF arcfile~='' THEN
  30.   DO
  31.     arcfile=arcfile||extension
  32.     SAY 'Updating' arcfile'...'
  33.     CALL DELETE(libpath||arcfile)
  34.     IF RIGHT(libpath,1)='/' THEN libpath2=LEFT(libpath,LENGTH(libpath)-1)
  35.     x=OPEN(f,'RAM:header','W')
  36.     IF x=0 THEN SIGNAL GETOUT
  37.     CALL WRITELN(f,bbsname '- Complete alphabetical filelist')
  38.     CALL WRITELN(f,totfiles 'files. - Compiled' DATE() 'at' TIME('C'))
  39.     CALL WRITELN(f,'')
  40.     CALL WRITELN(f,'Filename          Bytes File# Library         KeyWords')
  41.     CALL CLOSE(f)
  42.     CALL DELAY(99)
  43.     ADDRESS COMMAND 'JOIN RAM:header' bbspath'Lists/Files.ALPHA' 'AS' libpath||arcfile2
  44.     ADDRESS COMMAND 'CD' libpath2'0A'x||arccom arcfile arcfile2
  45.     CALL DELETE('ram:junk')
  46.     lynes.=''
  47.     sz=WORD(STATEF(libpath||arcfile),2)
  48.     x=OPEN(f,bbspath'FileNotes/'arcfile,'R')
  49.     IF x=0 THEN
  50.       DO
  51.         lib=LEFT(arcfile,POS('/',arcfile)-1)
  52.         lynes.1='File: 101  KeyWords: full alphabetical CONTENTS list'
  53.         lynes.2='Name: 'LEFT(libfile2,27)' Size:' sz 'bytes  Downloads: 0'
  54.         lynes.3='From: 'LEFT('BBBBS',27)' Date: 'DATE() TIME('C')'  Lib:' lib
  55.         lynes.4=LEFT('',74,'=')
  56.         lynes.0=5
  57.         CALL SETCLIP('BBS_101',arcfile)
  58.       END
  59.     ELSE
  60.       DO
  61.         DO i=1
  62.           line=READLN(f)
  63.           IF EOF(f) THEN LEAVE i
  64.           lynes.i=line
  65.         END
  66.         lynes.0=i-1
  67.         CALL CLOSE(f)
  68.         lynes.2=OVERLAY(sz 'bytes',lynes.2,41)
  69.         lynes.3=OVERLAY(DATE() TIME('C')' ',lynes.3,41)
  70.       END
  71.     lynes.5='Complete up to the minute alphabetical filelist.' totfiles 'files.'
  72.     x=OPEN(f,bbspath'FileNotes/'arcfile,'W')
  73.     IF x=0 THEN SIGNAL GETOUT
  74.     DO i=1 TO lynes.0
  75.       CALL WRITELN(f,lynes.i)
  76.     END
  77.     CALL CLOSE(f)
  78.   END
  79.  
  80. IF libfile~='' THEN
  81.   DO
  82.     libfile=libfile||extension
  83.     IF OPEN(f,bbspath'Lists/Libraries','R')~=0 THEN
  84.       DO
  85.         j=0
  86.         dirs.=''
  87.         DO i=1
  88.           line=READLN(f)
  89.           IF line='END' | EOF(f) THEN LEAVE i
  90.           num=WORD(line,1)
  91.           IF DATATYPE(num,'W') THEN
  92.             DO
  93.              j=j+1
  94.              dirs.j=WORD(line,2)
  95.             END
  96.         END
  97.         CALL CLOSE(f)
  98.         dirs.0=j
  99.         CALL QSORT(1,dirs.0,dirs)
  100.       END
  101.     ELSE
  102.       DO
  103.         SAY 'Lists/Libraries failed to open!  Aborting...'
  104.         SIGNAL GETOUT
  105.       END
  106.     CALL DELETE(libpath||libfile)
  107.     libpath2=libpath
  108.     IF RIGHT(libpath,1)='/' THEN libpath2=LEFT(libpath,LENGTH(libpath)-1)
  109.     x=OPEN(a,libpath||libfile2,'W')
  110.     IF x=0 THEN SIGNAL GETOUT
  111.     SAY 'Constructing FilesByLib list...'
  112.     CALL WRITELN(a,bbsname '- Complete alphabetical filelist, sorted by library')
  113.     CALL WRITELN(a,totfiles 'files. - Compiled' DATE() 'at' TIME('C'))
  114.     DO i=1 TO dirs.0
  115.       CALL WRITELN(a,'')
  116.       x=OPEN(f,libpath||dirs.i'/.'STRIP(LEFT(dirs.i,15)),'R')
  117.       IF x=0 THEN
  118.         DO
  119.           SAY libpath||dirs.i'/.'STRIP(LEFT(dirs.i,15)) 'failed to open!'
  120.           ITERATE i
  121.         END
  122.       DO j=1
  123.         line=READLN(f)
  124.         IF EOF(f) THEN LEAVE j
  125.         CALL WRITELN(a,line)
  126.       END
  127.       CALL CLOSE(f)
  128.     END
  129.     CALL CLOSE(a)
  130.     SAY 'Updating' libfile'...'
  131.     comm='CD' libpath2'0A'x||arccom libfile libfile2
  132.     ADDRESS COMMAND comm
  133.     CALL DELETE('ram:junk')
  134.     CALL DELETE(libpath||libfile2)
  135.     lynes.=''
  136.     sz=WORD(STATEF(libpath||libfile),2)
  137.     x=OPEN(f,bbspath'FileNotes/'libfile,'R')
  138.     IF x=0 THEN
  139.       DO
  140.         lib=LEFT(libfile,POS('/',libfile)-1)
  141.         lynes.1='File: 100  KeyWords: alphabetical CONTENTS by library'
  142.         lynes.2='Name: 'LEFT(libfile2,27)' Size:' sz 'bytes  Downloads: 0'
  143.         lynes.3='From: 'LEFT('BBBBS',27)' Date: 'DATE() TIME('C')'  Lib:' lib
  144.         lynes.4=LEFT('',74,'=')
  145.         lynes.0=5
  146.         CALL SETCLIP('BBS_100',libfile)
  147.       END
  148.     ELSE
  149.       DO
  150.         DO i=1
  151.           line=READLN(f)
  152.           IF EOF(f) THEN LEAVE i
  153.           lynes.i=line
  154.         END
  155.         lynes.0=i-1
  156.         CALL CLOSE(f)
  157.         lynes.2=OVERLAY(sz 'bytes',lynes.2,41)
  158.         lynes.3=OVERLAY(DATE() TIME('C')' ',lynes.3,41)
  159.       END
  160.     lynes.5='Up to the minute alphabetical filelist, sorted by library.' totfiles 'files.'
  161.     x=OPEN(f,bbspath'FileNotes/'libfile,'W')
  162.     IF x=0 THEN SIGNAL GETOUT
  163.     DO i=1 TO lynes.0
  164.       CALL WRITELN(f,lynes.i)
  165.     END
  166.     CALL CLOSE(f)
  167.   END
  168.  
  169. GETOUT:
  170. CALL SETCLIP('BBS_maint')
  171. EXIT
  172. RETURN
  173.  
  174. /* bbsALPHA.rexx */
  175.